
/**
 *  Class: Datastructures, CSI 326 Fall 2011
 *  Members: Christopher Nerf, Greg Shevach, Mesfin Solomon, Vidat Muslim
 *  Project: Project 1
 *  Scope: Implement a stack using one of the basic containers we have or will discuss. Example: A vector or list based stack.
 *  	   Implement a queue using one of the basic containers we have or will discuss. Example: A circular array or list based
 *		   queue
 *		   Develop and implement a palindrome checker that uses your stack and/or queue.
 *				 The data to be checked as a palindrome will consist of string characters, possibly containing whitespace and
 *				punctuation.
 *				 A palindrome reads the same forward as backward, ignoring case, whitespace and punctuation.
 *				 The strings to check will be stored in a file, one string per line. The file will contain the string quit to signify
 *				the end of file.
 *				 The strings can be of any length
 *  Version: 0.0 - Initial Pass
 */

// THis code is unaltered, probided by the professor

import java.util.Iterator;

public interface ListADT<T> extends Iterable<T> {
    /**  
     * Removes and returns the first element from this list. 
     */
    public T removeFirst();

    /**  
     * Removes and returns the last element from this list. 
     */
    public T removeLast();

    /**  
     * Removes and returns the specified element from this list. 
     */
    public T remove( T element );

    /**  
     * Returns a reference to the first element in this list. 
     */
    public T first ();

    /**  
     * Returns a reference to the last element in this list. 
     */
    public T last();

    /**  
     * Returns true if this list contains no elements. 
     */
    public boolean isEmpty();

    /**  
     * Returns the number of elements in this list. 
     */
    public int size();

    /**  
     * Returns an iterator for the elements in this list. 
     */
    public Iterator<T> iterator();

    /**  
     * Returns a string representation of this list. 
     */
    public String toString();
}